package com.fstec.ks.master;

import com.sinotn.ks.definition.Message;

/**
 * 服务端推送消息回调接口。
 * 通过实现本接口，然后实例化通过{@link com.zhengan.ks.netty.vendor.NettyClient#registServerCallback(ServerCallback) NettyClient#registServerCallback(ServerCallback)}
 * 注册到客户端实例。
 * <pre>
 * NettyClient client=...
 * ServerCallback serverCallback=...
 * client.registServerCallback(serverCallback);
 * </pre>
 * @Title ServerCallback.java
 * @Package com.fstec.ks.master
 * @Description 
 * Copyright: Copyright (c) 2023
 * Company:广东峰上科技有限公司
 * 
 * @author <a href="mailto:xieqj@fstec.com">谢启进</a>
 * @date 2023年10月18日 上午10:12:54
 * @version V1.0
 */
public interface ServerCallback {
	/**
	 * 实现本接口方法处理来自服务端推送消息。<br>
	 * 注意事项 – 对于有文件返回消息处理，在处理完成后。需要调用消息的MessageFile的{@link com.zhengan.ks.netty.MessageFile#delete() delete}方法删除临时文件。否则${ks.home}指向目录会累积临时文件<br>
	 * <pre>
	 *    try{
	 *      ...
	 *    }finally{
	 *      MessageFile[] mfs=resp.getFiles();
	 *      if(mfs!=null){
	 *        int len=mfs.length;
	 *        for(int i=0;i&lt;len;i++){
	 *          mfs[i].delete();
	 *        }
	 *      }
	 *    }
	 * </pre>
	 * @param msg
	 * @auth <a href="mailto:xieqj@fstec.com">谢启进</a>
	 * @date 2021年5月1日 上午11:22:13
	 */
	void onRcv(Message msg);
}
